package cn.tedu.map;

import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;

/**
 * @author :Colin
 * @version 创建时间: 2021/6/22 11:07
 */
public class TestMap2 {
    public static void main(String[] args) {
        Map<Integer, String> map = new HashMap<>();
        map.put(1,"gege");
        map.put(2,"meimei");
        map.put(3,"jiejie");
        map.put(4,"didi");
        System.out.println(map.size());
        System.out.println(map.get(2));
        System.out.println(map.hashCode());
        //System.out.println(map.remove(2));
        System.out.println(map);
        System.out.println(map.containsValue("gege"));
        System.out.println(map.containsKey(5));
        System.out.println(map);
        /*前提：map本身没有迭代器，所以需要转换成其他集合进行迭代
        * 方案1:set<Key> keySet()--将Map中的所有key值存入set集合
        * 方案2：Set<Entry<K,V>> entrySet()
        * --把map中的一对Key&Value取出，形成一个个Entry<K,V>
        *--将Entry作为一个个独立的元素存入set中
        */
        //1.k值是integer
        Set<Integer> set = map.keySet();
        Iterator<Integer> it=set.iterator();
        while(it.hasNext()){
            //System.out.println(map.get(it.next()));
            Integer key =it.next();
            //System.out.println(map.get(key));
            String value = map.get(key);
            System.out.println("["+key+"="+value+"]");
        }

        //map迭代方式2
        Set<Map.Entry<Integer,String>> entrySet = map.entrySet();
        Iterator<Map.Entry<Integer, String>> it2 = entrySet.iterator();
        while(it2.hasNext()){
            Map.Entry<Integer, String> entry = it2.next();
            Integer key2 = entry.getKey();
            String value2 = entry.getValue();
            System.out.println("{"+key2+"="+value2+"}");
        }

    }
}
